package com.springboot.test.sort;

import java.util.Arrays;

/**
 *  选择排序  从数组中找到最大或者最小的元素，与第一个元素进行交换，从下一个元素开始再寻找最大或者最小的元素与第二个元素交换
 *
 *  时间复杂度 O(n*n)
 *
 *  算法稳定性 不稳定
 */
public class SelectSort {

    public static void main(String[] args) {

        int[] arr = {2,35,65,123,6,7,12,1};

        for (int i = 0; i < arr.length; i++) {
            int max_idx = i;
            for (int j = i; j < arr.length; j++) {
                if(arr[j] > arr[max_idx]){
                    max_idx = j;
                }
            }
            swap(arr, i, max_idx);
        }

        Arrays.stream(arr).forEach(System.out::println);
    }

    public static void swap(int[] arr, int i, int max_idx){
        int tmp = arr[i];
        arr[i] = arr[max_idx];
        arr[max_idx] = tmp;
    }
}
